<?php

namespace App\Jobs;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use App\Service\Log\LogFile;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class DemoJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;


    public $param;

    /***
     * 队列处理器是长生命周期的进程，并将启动的应用程序状态存储在内存中。因此，在启动它们之后，代码库中的更改对其不起作用。因此，在部署过程中，一定要重新启动你的队列处理器。此外，请记住，应用程序创建或修改的任何静态状态不会在任务之间自动重置。
     *
     * 一直保持运行，直到它被手动停止或你关闭你的终端
     * php artisan queue:work --queue=member_task
     *
     * php artisan queue:listen  --queue=member_task
     *
     * php artisan queue:listen --queue=队列名称 --once  --max-jobs=1000
     *
     * php artisan queue:restart
     *
     */

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($param = '')
    {
        $this->param = $param;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        var_dump($this->param);
        $logger = new LogFile();
        $logger->write('Hello, ' . var_export($this->param, 1), 'info');
    }
}
